package com.hivis.quartz;

import com.hivis.service.INotebookMsgService;
import com.hivis.service.ISmsMsgService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 
 * 定时任务，检查数据库数据是否超出限定条数
 *
 */
@Component("taskJob")
public class QuartzTask {

	@Autowired
	INotebookMsgService notebookMsgService;
	@Autowired
	ISmsMsgService msgService;
	private final static Logger sysLogger = LoggerFactory.getLogger("system");


	/** https://cron.qqe2.com/
	 * CRON表达式 含义 "0 0 12 * * ?" 每天中午十二点触发 "0 15 10 ? * *" 每天早上10：15触发 "0 15 10
	 * * * ?" 每天早上10：15触发 "0 15 10 * * ? *" 每天早上10：15触发 "0 15 10 * * ? 2005"
	 * 2005年的每天早上10：15触发 "0 * 14 * * ?" 每天从下午2点开始到2点59分每分钟一次触发 "0 0/5 14 * * ?"
	 * 每天从下午2点开始到2：55分结束每5分钟一次触发 "0 0/5 14,18 * * ?"
	 * 每天的下午2点至2：55和6点至6点55分两个时间段内每5分钟一次触发 "0 0-5 14 * * ?" 每天14:00至14:05每分钟一次触发
	 * "0 10,44 14 ? 3 WED" 三月的每周三的14：10和14：44触发 "0 15 10 ? * MON-FRI"
	 * 每个周一、周二、周三、周四、周五的10：15触发 "0/10 * * * * ?" 每隔10秒触发 "0 0 10 * * ?" 每天10点触发
	 * 每隔1小时触发 "0 0 0/1 * * ? *"
	 */

	/**
	 * 每隔1小时触发
	 */
	@Scheduled(cron = "0 0 * ? * *")
	public void dbTask() {
		System.out.println(System.currentTimeMillis());
		notebookMsgService.deleteExpiredMessage(1);
	}
	/**
	 * 每天凌晨1点触发
	 */
	@Scheduled(cron = "0 0 1 ? * *")
	public void smsTask() {
		System.out.println(System.currentTimeMillis());
		msgService.deleteExpiredMessage(6);
	}
}
